.Net Aspire 已经进入GA,很快就出正式版本了。
其中Dashboard深受开发者的喜欢,最初只是在开发阶段提供应用数据遥测功能,但由于深受喜欢,现在也添加了更多的功能。
今天我尝试使用 Dashboard 的独立部署方式,并接入应用,以浏览实时的应用遥测数据。
当你准备好配置文件后,直接执行如下命令即可:
docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard -e DOTNET_DASHBOARD_CONFIG_FILE_PATH='/etc/aspire/config.json' -v ~/aspire:/etc/aspire mcr.microsoft.com/dotnet/aspire-dashboard:8.0.0
以上命令,使用环境变量DOTNET_DASHBOARD_CONFIG_FILE_PATH来告诉容器运行时去哪里寻找配置文件。
~/aspire是宿主机目录,/etc/aspire是容器内目录,我们做了一个映射。
我们在~/aspire目录下创建config.json文件,内容如下:
{
"Dashboard": {
"TelemetryLimits": {
"MaxLogCount": 2000,
"MaxTraceCount": 1000,
"MaxMetricsCount": 1000
},
"Frontend": {
"AuthMode":"BrowserToken",
"BrowserToken":""
},
"Otel": {
"AuthMode": "ApiKey",
"PrimaryApiKey": ""
}
}
}
具体参数参考微软官方文档.
这里我就讲两个重点配置:
BrowserToken:这个是前端的认证token,即通过浏览器访问的时候需要输入的密码PrimaryApiKey:这个是应用程序推送监测数据时,携带的Header头中的密钥,如在.NET程序中使用OpenTelemetry时进行配置:opt.Endpoint = new Uri("http://localhost:4317"); opt.Headers = "x-otlp-api-key=PrimaryApiKey";
其中opt是OtlpExporterOptions类。
详细内容可参考官方文档.
Tip
如果你的配置项不多,或不喜欢使用配置文件,可以都使用环境变量的方式传入各个参数,具体参数参考官方文档。
如果你无法正常拉取微软官方的镜像,请尝试修改dns,如在/etc/resolv.conf中添加:
nameserver 8.8.8.8 nameserver 8.8.4.4
使用nslookup 命令验证dns
nslookup mcr.microsoft.com